4 角色权限分配

根据RBAC模型,当创建好权限后,需要把权限先分配角色,再把角色授权给用户和组织使用。权限和角色之间是多对多关系,即1个角色可以拥有多个权限,1个权限可以分配给多个角色。

权限分配给角色,同时支持在开发时和运行时两种环境进行设置。

1.开发时设置

(1)实现原理

开发时设置是指在开发阶段就把权限和角色的关系设置好,应用运行时无需设置此项内容就可以对访问用户做访问约束。开发时设置相当于先内置角色权限在微服务中。

配置文件写入

开发时设置会把角色和权限的关联关系写入到metainfo配置文件中,后续在门户中注册微服务后,门户会读取微服务的metainfo配置文件把角色和权限数据加载出来。关联关系是配置到roles节点的permissions项中。

1660646866688

数据库表写入

开发时设置是写入到门户的permission_debug表。permission_debug即是权限表,也是角色和权限关联表,通过role_id将权限关联到角色。比如:

1660646958846

(2)实现效果

在页面制作的工作台,点击右上角的齿轮按钮,可以进入开发时设置的页面,如下图所示:

1660209981179

主要操作如下:

  • 在增加或者编辑角色过程中,可以选择相关联的权限

1660210174928

可以从功能权限、数据权限和API权限等方面进行权限的单选或者多选,比如功能权限方面可以选择多个页面,也可以同时在数据权限、API权限中再选择加入几个权限,这块可以根据业务需要自行设置。

  • 功能权限选择

1660210492371

  • 数据权限选择

1660210522232

  • API权限选择

1660210537828

  • 权限和角色配置后,在列表页面中需要点击保存配置文件保存设置

1660210631342

2.运行时设置

除了在开发阶段配置好权限和角色后,也可以在应用运行中动态设置权限和角色的分配关系。

(1)实现原理

开发时设置相当于先内置角色权限在微服务中,这样就固化了这块的内容。在实际使用场景中,经常会需要额外添加权限和角色,以及授权给更多用户使用。这时如果只有开发时设置是不够的,需要在运行时灵活进行配置。

数据库表写入

运行时设置是写入到门户的permission表(区别于permission_debug表)。permission同样即是权限表,也是角色和权限关联表,通过role_id将权限关联到角色。比如:

1660647592894

(2)实现效果

运行时设置是在正式门户中维护(因此应用需要发布后才能进行设置),打开路径是在应用资源管理页面:

1660211121820

设置过程和开发时环境类似,设置后需要点击保存并且发布按钮进行保存:

1660211303676

如果某些角色只有查看操作,说明该角色是从开发时设置发布后带过来的,只能查看不能编辑。只有在运行时添加的角色,才能进行编辑和删除。如下图所示:

1660211471732

results matching ""

    No results matching ""

    results matching ""

      No results matching ""